home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c-part1 / 6577 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  3.6 KB

  1. Path: rocannon.cam.harlequin.co.uk!markt
  2. From: markt@harlqn.co.uk (Mark Tillotson)
  3. Newsgroups: comp.lang.misc,comp.lang.perl.misc,comp.lang.tcl,comp.lang.c,comp.lang.java
  4. Subject: Re: Relative Speed of Perl vs. Tcl vs. C [indentation]
  5. Date: 19 Feb 96 15:18:44 GMT
  6. Organization: Harlequin Limited, Cambridge, England
  7. Message-ID: <MARKT.96Feb19151844@atlas.harlqn.co.uk>
  8. References: <4g0bd6INNn9j@keats.ugrad.cs.ubc.ca> <4g1h0a$l72@orac.mon.rnb.com>
  9.     <MARKT.96Feb16162033@atlas.harlqn.co.uk> <4g8son$gmd@mulga.cs.mu.OZ.AU>
  10. NNTP-Posting-Host: atlas
  11. In-reply-to: fjh@munta.cs.mu.OZ.AU's message of 19 Feb 1996 04:02:31 GMT
  12.  
  13. fjh@munta.cs.mu.OZ.AU (Fergus Henderson) replied:
  14. > I'm not familiar with Python, but I'm familiar with Haskell, which also
  15. > uses whitespace to structure code.
  16. > >linewrap,
  17. > This is not a problem in Haskell; you just need to make sure that
  18. > you indent the wrapped part of the line, e.g.
  19.  
  20. The point is that numerous text editors, word-processing packages,
  21. mail-handling systems can and do automatically line-wrap, and can thus
  22. corrupt such programs, and such things don't know the rules for Haskell,
  23. but always happen to respect the normal notions of whitespace (ie that
  24. any amount of whitespace is equivalent to any other amount of
  25. whitespace). 
  26. >     this is a very long statement of pseudo-haskell that doesn't quite
  27. >         fit on one line
  28. > >tabs,
  29. > So disallow them!
  30. Again this just makes life difficult when you encounter software that
  31. replaces spaces by tabs automatically.
  32.  
  33. > >painful to automatically generate code,
  34. > In Haskell it is not painful to automatically generate code, because
  35. > Haskell does not *require* the use of layout to indicate nesting;
  36. > curly braces and semicolons can be used instead.  You can also
  37. > mix the use of implicit nesting (via layout) and explicit nesting
  38. > (via curly braces and semicolons).
  39.  
  40. Well that's my point, that using the conventional notion of language
  41. as a symbol-sequence, and deploying bracketing constructs, is more
  42. powerful and useful than trying to treat sourcecode as a 2-D array of
  43. fixed-width characters.
  44.  
  45. > >virtually impossible to stream-edit code,
  46. > Huh?  Why?
  47. OK, how do you automatically merge diff's?   Or paste in a common
  48. piece of code at several different places where the indentation might
  49. happen to be different?
  50.  
  51. > >proportional fonts,
  52. > Even proportional fonts don't have proportional whitespace!
  53. But proportional-font display techniques don't always respect them,
  54. and usually the spaces are so narrow (especially in san-serif styles)
  55. that you can't be sure just be looking if two lines start with the
  56. same number.
  57.  
  58. [long list of detailed counter-arguments omitted]
  59.  
  60. People are used to the notion of programming (and natural) languages
  61. being relatively context-free, and having the _invisible_ whitespace
  62. at the start of each line as an unnecessary context-sensitive feature
  63. can be a real pain and source of confusion, error and bugs.  It breaks
  64. referencial transparency for one thing.  It's the sort of mistake
  65. that's been made before, in the days of punched cards, Fortran and
  66. Cobol, before enough people understood grammar theory.
  67.  
  68. There really is no difficulty at all in parsing a normal block-
  69. structured language and formatting it in a suitably indented form, and
  70. you get all the benefits of being able to cut/paste without worry, as
  71. well as the benefit of redundancy.  The editor I use everyday can do
  72. this for a wide range of programming languages, and matches
  73. brackets/braces automatically too.
  74.  
  75. (All my personal opinions)
  76.  
  77. __Mark
  78. [ markt@harlequin.co.uk | http://www.harlequin.co.uk/ | +44 1223 873829   ]
  79. [ homepage http://www.hal.com/services/juggle/home/markt@harlequin.co.uk/ ]
  80.